草庐IT

java - 01 扭结背包

全部标签

java - Apache Camel : Convert JSON to a POJO using Camel methods

我有一个REST服务器,它在响应正文中发送JSON。我最近开始阅读有关ApacheCamel的内容。我使用以下方法向我的REST服务发送请求。from("direct:start").setHeader("token",simple("234da")).to("http://localhost:8088/foo/bar/?foo1=bar1");现在响应将是一个JSON,有什么方法可以在to()之前使用某种方法将这个JSON直接放入POJO(类似这样的东西)?to("http://localhost:8088/foo/bar/?foo1=bar1").toPOJO();我更喜欢非Spr

mkstemp 的 java 等价物

Java中有什么方法可以安全地写入临时文件吗?据我所知,创建临时文件(createTempFile)的唯一方法实际上不会同时打开它,因此文件打开和文件写入之间存在竞争条件。我错过了什么吗?我在UnixFileSystem.java中找不到createFileExclusively(String)背后的C源代码,但我怀疑它真的能做任何事情,因为文件打开发生在创建临时文件后的Java代码中(除非它试图用文件锁?)。问题在创建临时文件和您打开它之间,恶意攻击者可能会取消链接该临时文件并将恶意内容放在那里。例如,攻击者可以创建命名管道来读取敏感数据。或者类似地,如果您最终通过读取文件来复制文件

java - 任何 Apache Commons-Configuration 替代品/竞争对手?

我最近尝试使用ApacheCommons-Configuration管理一些本地XML配置文件。它在易用性(无法加载空配置文件,CombinedConfiguration需要为大多数操作等使用底层配置等)和API的一致性(保存操作不发布事件,事件不通用)方面严重不足。除了写入注册表的JDK首选项(我不想要)之外,还有其他方法可以管理基于文件的首选项吗?使用另一种文件格式不是一种选择。 最佳答案 我过去为此使用过XStream,但它只是XML数据绑定(bind),从文件到对象的映射。它给您带来了提供更高级别方法(特别是组合配置、验证)

java - 什么是一类一责原则?

我想了解一个类(class),一个职责原则。我找到了一些关于它的文章,但没有例子。如果你能给我一个违反原则的类的例子,那将对我有所帮助。我很熟悉一个方法应该只做一件事的想法,例如get和set方法。它不能与一个类,一个职责相同,因为set和get方法都在一个类中实现。那么这是否意味着该类违反了规则,因为该类既有设置也有获取的责任?什么是一类一责原则? 最佳答案 我不是这个设计模式的100%专家,但我是这样想的-如果我创建一个对象,它恰好负责一件事。如果它需要做其他事情,但又与另一个对象相关,根据情况,我会使用继承或接口(interf

java - 重新加载修改类时如何让jetty阻止请求?

我正在使用dcevm+run-jetty-run+livereload,尝试在修改java源代码时开发一个web应用程序而无需重新启动jetty。一切正常。当我修改一个java类时,livereload监听到变化,并触发浏览器刷新打开的页面,看到修改后的结果。但我发现还是不太方便:当浏览器重新加载时,dcevm和jetty可能还没有重新加载修改过的类。不得不再次手动刷新页面,但我没有仔细检查内容,不确定这次是否显示修改后的结果。所以我想知道当我修改了一些类并且dcevm正在重新加载时,有什么方法可以让jetty阻止请求。它将确保显示的页面始终被修改。 最佳答

java - 使用 Apache ZooKeeper 实现死锁检测

我在一家小型软件公司工作,我的任务是研究一个分布式锁管理器供我们使用。它必须与Java和C++接口(interface)。我已经使用ZooKeeper几个星期了,并且haveimplementedsharedlocks(readandwritelocks)accordingtothedocumentation.我现在需要实现死锁检测。如果每个客户端都可以维护一个锁图,那将是快速和容易的。然而,youcannotreliablyseeeverychangethathappenstoanodeinZooKeeper,因此不可能保持准确的图表。这意味着每次检查死锁时,我都需要下载很多锁,这似

java - Solr中添加自定义查询参数的正确方法

我目前正在运行一个工作正常的Solr客户端/服务器对。但是,在某些情况下,发送到Solr的过滤器查询(fq参数)非常大(可能有数千个字符)并且无法缩减。由于查询解析需要onlyafractionoftheoveralltime,我想尝试压缩此查询部分并将其发送到Solr。我正在考虑修改客户端而不是fq它使用另一个参数(例如zfq)。然后Solr可以决定-如果它收到zfq,它使用它并将数据解码为fq.否则它应该像往常一样运行。实现上述目标的标准方法是什么?看起来有SearchHandler,requestHandler,(都在solrconfig.xml中)和许多其他人,我不太确定什么是

java - 重写 Crenshaw 的 "let' 构建编译器的设计模式”?

我正在将JackCrenshaw的“让我们构建一个编译器”从TurboPascal4.0重写为JAVA。这是令人鼓舞的,因为经典书籍还没有O-O版本Isthereamoremodern,OOversionof"Let'sBuildaCompiler"?本书共15章。编译器以递增的方式介绍:第一章提供了整个编译器的样板代码,然后每一章都在前一章的Pascal程序中添加了一些行。我已经翻译了前两章,每一章都是一个包,每个Pascal过程都是JAVA中的静态保护方法,一章的过程聚集在一个类中,该类扩展了从其前一章翻译的类。packagetd1;publicclassCradle{protec

java - 为什么我们要使用静止的原子?

我在restweb服务中看到过很多次xml,格式如下:并且url(http://www.../author/1)将包含如下内容:S.CrockerNoneNone我想知道为什么要使用第一种形式的xml?如何在java模型类上建模(使用mvc模式)? 最佳答案 第一个问题的答案很简单:ATOM是固体standard涵盖bunch的standard您想为发布、更新和管理信息而做的事情。因此,人们使用ATOM的原因与他们使用HTTP的原因相同-他们可以投资一些独特的东西,但该标准为他们提供了更好的工具。第二个,variousJavalib

java - 如何配置特定 FileHandler 的属性

Java日志记录配置文件让我可以定义命名记录器的属性,例如name.heikoseeberger.heikotron.level=FINEname.heikoseeberger.heikotron.handlers=java.util.logging.FileHandler到目前为止,还不错。现在我想配置那个特定的FileHandler,例如带有特定的输出文件。不幸的是,我只知道如何配置“全局”FileHandler,它已经存在于配置文件中:java.util.logging.FileHandler.pattern=%h/java%u.logjava.util.logging.File